package leetcode;

/**
 * @Classname RemoveDuplicates
 * @Author happytaohaha
 * @Date 2020/3/1
 * @Description 删除排序数组中的重复项
 * 思路： （双指针法）因为数组是排序的因此后面的值大于等于前边的值。 快慢指针
 * 和官方解法一样 复杂度：O(n)
 */
public class RemoveDuplicates_0026 {

    public static int removeDuplicates(int[] nums) {
        int len = nums.length;
        if(len<1){
            return 0;
        }
        int j = 0;
        for(int i = 1; i < len; i++ ){
            //当nums[i] 比nums[j]大时, 将nums[i]
            if(nums[i]>nums[j]){
                j++;
                nums[j] = nums[i];
            }
        }
        return j+1;
    }

    public static void main(String[] args) {
        System.out.println(removeDuplicates(new int[]{0,0,1,1,1,2,2,3,3,4}));
    }
}
